home *** CD-ROM | disk | FTP | other *** search
/ Erotic Games: Memory / Erotic Games: Memory.iso / mac / air_installers / AdobeAIR.exe / setup.swf / scripts / mx / managers / DragManagerImpl.as < prev    next >
Text File  |  2009-02-12  |  6KB  |  189 lines

  1. package mx.managers
  2. {
  3.    import flash.display.DisplayObject;
  4.    import flash.events.MouseEvent;
  5.    import flash.geom.Point;
  6.    import mx.core.DragSource;
  7.    import mx.core.IFlexDisplayObject;
  8.    import mx.core.IUIComponent;
  9.    import mx.core.UIComponentGlobals;
  10.    import mx.core.mx_internal;
  11.    import mx.managers.dragClasses.DragProxy;
  12.    import mx.styles.CSSStyleDeclaration;
  13.    import mx.styles.StyleManager;
  14.    
  15.    use namespace mx_internal;
  16.    
  17.    public class DragManagerImpl implements IDragManager
  18.    {
  19.       
  20.       private static var instance:IDragManager;
  21.       
  22.       mx_internal static const VERSION:String = "3.0.0.0";
  23.       
  24.       private static var sm:ISystemManager;
  25.        
  26.       
  27.       private var bDoingDrag:Boolean = false;
  28.       
  29.       private var mouseIsDown:Boolean = false;
  30.       
  31.       public var dragProxy:DragProxy;
  32.       
  33.       private var dragInitiator:IUIComponent;
  34.       
  35.       public function DragManagerImpl()
  36.       {
  37.          super();
  38.          if(instance)
  39.          {
  40.             throw new Error("Instance already exists.");
  41.          }
  42.          if(sm.isTopLevel())
  43.          {
  44.             sm.addEventListener(MouseEvent.MOUSE_DOWN,sm_mouseDownHandler);
  45.             sm.addEventListener(MouseEvent.MOUSE_UP,sm_mouseUpHandler);
  46.          }
  47.       }
  48.       
  49.       public static function getInstance() : IDragManager
  50.       {
  51.          if(!instance)
  52.          {
  53.             sm = SystemManagerGlobals.topLevelSystemManagers[0];
  54.             instance = new DragManagerImpl();
  55.          }
  56.          return instance;
  57.       }
  58.       
  59.       public function showFeedback(param1:String) : void
  60.       {
  61.          if(dragProxy)
  62.          {
  63.             if(param1 == DragManager.MOVE && !dragProxy.allowMove)
  64.             {
  65.                param1 = DragManager.COPY;
  66.             }
  67.             dragProxy.action = param1;
  68.          }
  69.       }
  70.       
  71.       private function sm_mouseDownHandler(param1:MouseEvent) : void
  72.       {
  73.          mouseIsDown = true;
  74.       }
  75.       
  76.       public function getFeedback() : String
  77.       {
  78.          return !!dragProxy ? dragProxy.action : DragManager.NONE;
  79.       }
  80.       
  81.       public function acceptDragDrop(param1:IUIComponent) : void
  82.       {
  83.          if(dragProxy)
  84.          {
  85.             dragProxy.target = param1;
  86.          }
  87.       }
  88.       
  89.       public function get isDragging() : Boolean
  90.       {
  91.          return bDoingDrag;
  92.       }
  93.       
  94.       private function sm_mouseUpHandler(param1:MouseEvent) : void
  95.       {
  96.          mouseIsDown = false;
  97.       }
  98.       
  99.       public function endDrag() : void
  100.       {
  101.          var _loc1_:ISystemManager = null;
  102.          if(dragProxy)
  103.          {
  104.             _loc1_ = dragInitiator.systemManager;
  105.             _loc1_.popUpChildren.removeChild(dragProxy);
  106.             dragProxy.removeChildAt(0);
  107.             dragProxy = null;
  108.          }
  109.          dragInitiator = null;
  110.          bDoingDrag = false;
  111.       }
  112.       
  113.       public function doDrag(param1:IUIComponent, param2:DragSource, param3:MouseEvent, param4:IFlexDisplayObject = null, param5:Number = 0, param6:Number = 0, param7:Number = 0.5, param8:Boolean = true) : void
  114.       {
  115.          var _loc9_:Number = NaN;
  116.          var _loc10_:Number = NaN;
  117.          var _loc17_:CSSStyleDeclaration = null;
  118.          var _loc18_:Class = null;
  119.          if(bDoingDrag)
  120.          {
  121.             return;
  122.          }
  123.          if(!(param3.type == MouseEvent.MOUSE_DOWN || param3.type == MouseEvent.CLICK || mouseIsDown || param3.buttonDown))
  124.          {
  125.             return;
  126.          }
  127.          bDoingDrag = true;
  128.          this.dragInitiator = param1;
  129.          dragProxy = new DragProxy(param1,param2);
  130.          param1.systemManager.popUpChildren.addChild(dragProxy);
  131.          if(!param4)
  132.          {
  133.             param4 = new (_loc18_ = (_loc17_ = StyleManager.getStyleDeclaration("DragManager")).getStyle("defaultDragImageSkin"))();
  134.             dragProxy.addChild(DisplayObject(param4));
  135.             _loc9_ = param1.width;
  136.             _loc10_ = param1.height;
  137.          }
  138.          else
  139.          {
  140.             dragProxy.addChild(DisplayObject(param4));
  141.             if(param4 is ILayoutManagerClient)
  142.             {
  143.                UIComponentGlobals.layoutManager.validateClient(ILayoutManagerClient(param4),true);
  144.             }
  145.             if(param4 is IUIComponent)
  146.             {
  147.                _loc9_ = (param4 as IUIComponent).getExplicitOrMeasuredWidth();
  148.                _loc10_ = (param4 as IUIComponent).getExplicitOrMeasuredHeight();
  149.             }
  150.             else
  151.             {
  152.                _loc9_ = param4.measuredWidth;
  153.                _loc10_ = param4.measuredHeight;
  154.             }
  155.          }
  156.          param4.setActualSize(_loc9_,_loc10_);
  157.          dragProxy.setActualSize(_loc9_,_loc10_);
  158.          dragProxy.alpha = param7;
  159.          dragProxy.allowMove = param8;
  160.          var _loc11_:Object;
  161.          if((_loc11_ = param3.target) == null)
  162.          {
  163.             _loc11_ = param1;
  164.          }
  165.          var _loc12_:Point = new Point(param3.localX,param3.localY);
  166.          _loc12_ = DisplayObject(_loc11_).localToGlobal(_loc12_);
  167.          var _loc13_:Number = (_loc12_ = DisplayObject(param1.systemManager.topLevelSystemManager).globalToLocal(_loc12_)).x;
  168.          var _loc14_:Number = _loc12_.y;
  169.          var _loc15_:Point = DisplayObject(_loc11_).localToGlobal(new Point(param3.localX,param3.localY));
  170.          _loc15_ = DisplayObject(param1).globalToLocal(_loc15_);
  171.          dragProxy.xOffset = _loc15_.x + param5;
  172.          dragProxy.yOffset = _loc15_.y + param6;
  173.          dragProxy.x = _loc13_ - dragProxy.xOffset;
  174.          dragProxy.y = _loc14_ - dragProxy.yOffset;
  175.          dragProxy.startX = dragProxy.x;
  176.          dragProxy.startY = dragProxy.y;
  177.          if(param4 is DisplayObject)
  178.          {
  179.             DisplayObject(param4).cacheAsBitmap = true;
  180.          }
  181.          var _loc16_:Object;
  182.          if(_loc16_ = dragProxy.automationDelegate)
  183.          {
  184.             _loc16_.recordAutomatableDragStart(param1,param3);
  185.          }
  186.       }
  187.    }
  188. }
  189.